Method of text similarity measurement

ABSTRACT

In one aspect, the present invention provides a for estimating the similarity between at least two portions of text including the steps of forming a set of syntactic tuples, each tuple including at least two terms and a relation betweeen the two terms; classifying the relation between the terms in the tuples according to a predefined set of relations; establishing the relative agreement between syntactic tuples from the portions of text under comparison according to predefined classes of agreement; calculating a value representative of the similarity between the portions of text of each of the classes of agreement; and establishing a value for the similarity between the portions of text by calculating a weighted sum of the values representative of the similarity between the portions of text for each of the classes of agreement. Preferaly, the step of calculating a value representative of the similarity between the portions of text for each of the classes of agreement includes a weighting based upon the number of matched terms occurring in particular parts of speech in which the text occurs. It is also preferred that the step of calculating a value representative of the similarity between the portions of text for each of the classes of agreement include the application of a weighting factor to the estimate of similarity for each of the classes of agreement and the parts of speech in which matched terms occur.

FIELD OF THE INVENTION

[0001] The present invention relates to an improved method for the measurement of text similarity based on syntactic relation vectors referred to in the specification as 3-tuples. The method may be used to measure the similarity or degree of overlap between two portions of text.

BACKGROUND OF THE INVENTION

[0002] Text similarity measurement generally refers to methods of determining the degree of overlap between two portions of text. These methods are usually implemented during a search for a document to judge how well a document matches a given search query. However, these methods may also be used in other information retrieval problems such as document clustering (to match two documents and decide whether they should be in the same cluster) and the classification of documents.

[0003] A method for determining the similarity of portions of text is the cosine measure. For this measure, the portions of text are assumed to be represented as vectors with terms as the coordinates after appropriate weighting. An estimate of similarity is determined as the cosine of the angle between the vectors. Often the cosine is calculated as the dot product of the vectors after normalization.

[0004] The cosine measure is generally considered to have advantageous properties such as fast computation and a symmetric and simple range of values [0,1]. However, with this method it is assumed that the terms are independent and each portion of text is simply treated as a ‘bag of terms’.

[0005] As a result, the method is limited in its ability to accurately capture the degree of similarity between two portions of text.

[0006] Other methods for determining the similarity between two portions of text are available, however, they generally have the same above-mentioned disadvantage as the cosine measure.

[0007] Another type of method for determining the similarity between two portions of text uses the co-occurrence of term pairs in each of the portions. For this type of method, a co-occurrence thesaurus is first constructed from the text portions. This method captures all the co-occurring term pairs in the portions. In this type of method the similarity is determined by reference to the amount of overlap between co-occurring term pairs. Co-occurrence based measures capture some of the term dependencies, but this method can be used only if there is a sufficiently large portion of text available for the generation of a co-occurrence thesaurus or if the co-occurrence thesaurus is already available.

[0008] U.S. Pat. No. 5,297,039 (Kanaegami et.al) proposes a similarity measure using syntactic relations between the terms. Text is parsed first to extract an ‘analysis to network’ that consists of triplets of the form ‘(relation, element 1, element 2)’. The elements correspond to the nouns and the relation is a term (usually a verb) syntactically close to the elements 1 and 2. The similarity is measured by a sum of term agreements, pair agreements and line agreements between the corresponding analysis networks, after suitable weighting. Since the relations are themselves terms extracted from the text, this method does not overcome the problem of synonymity. Accordingly, it is difficult to calculate the term, pair and line agreements accurately.

[0009] The above discussion of documents, acts, materials, devices, articles or the like is included in this specification solely for the purpose of providing a context for the present invention. It is not suggested or represented that any or all of these matters formed part of the prior art base or were common general knowledge in the field relevant to the present invention as it existed before the priority date of each claim of this application.

SUMMARY OF THE INVENTION

[0010] In one aspect, the present invention provides a method for estimating the similarity between at least two portions of text including the steps of:

[0011] forming a set of syntactic tuples, each tuple including at least two terms and a relation between the two terms;

[0012] classifying the relation between the terms in the tuples according to a predefined set of relations;

[0013] establishing the relative agreement between syntactic tuples from the portions of text under comparison according to predefined classes of agreement;

[0014] calculating a value representative of the similarity between the portions of text for each of the classes of agreement; and

[0015] establishing a value for the similarity between the portions of text by calculating a weighted sum of the values representative of the similarity between the portions of text for each of the classes of agreement.

[0016] Preferably, the step of calculating a value representative of the similarity between the portions of text for each of the classes of agreement includes a weighting based upon the number of matched terms occurring in particular parts of speech in which the text occurs.

[0017] It is also preferred that the step of calculating a value representative of the similarity between the portions of text for each of the classes of agreement include the application of a weighting factor to the estimate of similarity for each of the classes of agreement and the parts of speech in which matched terms occur.

[0018] The syntactic tuples may include two terms and a relation between the terms, the relation being classified according to one of the following classes:

[0019] relations between a verb and its subject;

[0020] relations between a verb and its object;

[0021] relations between a modifier and its modified word; or

[0022] a circumstantial relationship.

[0023] In a particularly preferred embodiment, the method includes tuples of the form (relation, term1, term2).

[0024] The improved method includes a number of advantages in that the method does not rely upon an assumption that the terms in the portions of text are independent. In addition, the method is not constrained by the number of relations and uses generic relations between the terms to determine the similarity between the portions of text with greater accuracy. Also, the improved method is not biased by the length of the portions of text that are to be compared.

BRIEF DESCRIPTION OF THE DRAWING

[0025] The invention will now be described in greater detail by reference to the attached drawing and to an Example. It is to be understood that the particularity of the drawing and the Example does not supersede the generality of the foregoing description of the invention.

[0026]FIG. 1 is a flow chart showing the steps in the method of the invention.

DETAILED DESCRIPTION

[0027] The present invention will now be described in relation to the drawing and an Example. FIG. 1 shows the method of the invention in flowchart form. The method for estimating the similarity between at least two portions of text begins with the step of extracting a set of syntactic tuples, each tuple including at least two terms and a relation between the two terms. The extracted syntactic tuples are compared and classified based on relative agreements. A value representative of the similarity between the portions of text for each of the classes of agreement is calculated; and a value for the similarity between the portions of text is established by calculating a weighted sum of the values representative of the similarity between the portions of text for each of the classes of agreement.

EXAMPLE

[0028] In the Example, a method for determining the similarity of two portions of text is based upon the formation of syntactic tuples of the form “relation-term1l-term2”, referred to as 3-tuples, where “term1” and “term2” are terms extracted from the portions of text to be compared and “relation” is a relationship between the terms.

[0029] Preferably, the “relation” is one of a pre-defined set of relations.

[0030] 3-tuples for each of the portions of text to be compared may be extracted through a three step process including the following steps:

Text Pre-Processing

[0031] In this step, redundant parts in the portions of text, such as tabular data in appendices, are identified and removed.

Morphological Analysis

[0032] This particular step can be subdivided into a word analysis step followed by a lexical pattern matching step. Preferably, the word analysis step analyses each word in the portions of text using a set of dictionaries and a morphology grammar. Generally, each word in a dictionary is associated with a set of linguistic features.

[0033] The morphology grammar defines how phenomena such as punctuations and inflections are to be interpreted by the word analyser. The output of the word analysis step is a list of nodes each corresponding to a word in the portion of text under analysis and containing its linguistic features.

[0034] The lexical pattern matching step uses a set of dictionaries with each entry describing a particular word sequence pattern that is to be matched with the list of nodes output by the word analysis step. This step is used to locate domain terms, idioms and phrases in the portion of text.

Structural Analysis

[0035] In the Example, the patterns output from the morphological analysis step are considered as being related according to a set of predefined relationships as set out below:

[0036] ARG0: relations between a verb and its subject, or a subject in the parser tree of one sentence.

[0037] ARG1: relations between a verb and its object, or an object in the parser tree of one sentence.

[0038] ATTR: relations between a modifier and its modified word.

[0039] CICR: circumstantial relationship (relations other than the above).

[0040] The structural analysis step may proceed by initially representing the patterns as nodes and then constructing a directed acyclic graph of these nodes. The edges of this directed acyclic graph are extracted and become the 3-tuples for the purpose of this Example.

[0041] The relations in the 3-tuples are generic and are determined based upon a defined set of relations. Accordingly, even though the same “text meaning” may be expressed in different forms, they will be normalized into the same set of 3-tuples with this method.

Different Types of 3-Tuple Agreements

[0042] In the Example, three separate types of “agreement” between 3-tuples are defined. In this embodiment, they are referred to as Class A (full agreement), Class B (partial agreement) and Class C (term agreement). The following definitions are established for purposes of illustration:

[0043] Two portions of text, say D_(i) and D_(j), are represented by a vector of 3-tuples, that is:

D_(i)={T_(i1), T_(i2), . . . , T_(in)}, and

D_(j)={T_(j1), T_(j2), . . . , T_(jn)},

where

T_(i1)={T_(i1).relation, T_(i1).term1, T_(i1). Term2} and

T_(j1)={T_(j1).relation, T_(j1).term1, T_(j1). Term 2} are 3-tuples.

[0044] The classes of agreement between 3-tuples are defined in the Example as follows:

Class A (Full Agreement)

[0045] In the Example, two 3-tuples are said to belong to “class A” if and only if they are identical.

[0046] i.e. T_(i) and T_(j) belong to class A

[0047] if and only if

(T _(i).relation==T _(j).relation) AND

(T _(i).term1==T _(j).term1) AND

(T _(i).term2==T _(j).term2)

Class B (Partial Agreement)

[0048] In the Example, two 3-tuples are said to belong to “class B” if and only if exactly two of corresponding elements in the 3-tuples are identical.

[0049] i.e. T_(i) and T_(j) belong to class B

[0050] if and only if

((T _(i).relation==T _(j).relation) AND (T _(i).term1==T _(j).term1)) OR

((T _(i).relation==T _(j).relation) AND (T _(i).term2==T _(j).term2)) OR

((T _(i).term1==T _(j).term1) AND (T _(i).term2==T _(j).term2))

Class C (Term Agreement)

[0051] In the Example, two 3-tuples are said to belong to “class C” if and only if exactly one of the corresponding terms in the 3-tuples are identical.

[0052] i.e. T_(i) and T_(j) belong to class C

[0053] If and only if

(T _(i).term1==T _(j).term1) OR (T _(i).term2==T _(j).term2)

[0054] Preferably, when terms are matched, they are differentiated based on the Part of Speech (POS) in which the terms occur. In the Example, there are three definitions for POS which are ultimately used in the overall measure of similarity between portions of text.

POS1 (Part of Speech 1)

[0055] In the Example, two 3-tuples are categorised as POS1 if the POS of each matching term is a “NOUN”, that is:

(T _(i).term1==T _(j).term1) AND

(T _(i).term1.POS==NOUN AND T _(j).term1.POS==NOUN)

AND

(T _(i).term2==T _(j).term2) AND

(T _(i).term2.POS==NOUN AND T _(j).term2.POS==NOUN)

POS2 (Part of Speech 2)

[0056] In the Example, two 3-tuples are categorised as POS2 if the POS of exactly one matching term is a “NOUN”, that is:

((T _(i).term1==T _(j).term1) AND

(T _(i).term1.POS==NOUN AND T _(j).term1.POS==NOUN)

AND

(T _(i).term2==T _(j).term2) AND

(T _(i).term2.POS !=NOUN OR T _(j).term2.POS !=NOUN))

OR

((T _(i).term1==T _(j).term1) AND

(T _(i).term1.POS !=NOUN OR T _(j).term1.POS !=NOUN)

AND

(T _(i).term2==T _(j).term2) AND

(T _(i).term2.POS==NOUN AND T _(j).term2.POS==NOUN))

POS3 (Part of Speech 3)

[0057] In the Example, two 3-tuples are categorised as POS3 if they neither belong to POS1 nor POS2.

[0058] Based upon the definitions set out above, a similarity measure in the Example is established as follows:

[0059] Two portions of text that will undergo a similarity comparison have 3-tuple vectors formed which are referred to as D_(i) and D_(j), which may be represented as:

D_(i)={T_(i1), T_(i2), . . . , T_(iNi)}

and

D_(i)={T_(j1), T_(j2), . . . , T_(jNj)}

[0060] where N_(i) and N_(j) are the length of vectors D_(i) and D_(j) respectively.

[0061] The number of 3-tuples that match according to the Class A definition may be represented as nA. Similarly, nB and nC may be used to represent the number of 3-tuples matching according to Class B and Class C definitions respectively. In the Example, if a 3-tuple occurs two or more times, the count is taken to be the minimum of the number of times it occurs in D_(i) and D_(j).

[0062] If nA_(i), (i=1,2,3) is used to represent the number of 3-tuples satisfying both Class A and POSi, (i=1,2,3), then nA₁+nA₂+nA₃=nA. Similarly, by using nB_(i) and nC_(i), (i=1,2,3) to represent the number of 3-tuples satisfying both Class B and POSi and Class C and POSi respectively, then measures (sim_(A), sim_(B) and sim_(C)) that may be used to determine the amount of overlap in terms of nA_(i), nB_(i) and nC_(i), may be stated as: $\begin{matrix} {{{sim}_{A}\left( {D_{i},D_{j}} \right)} = \frac{\sum\limits_{i = 1}^{3}\quad {n\quad {A_{i} \cdot w_{i}}}}{\min \left( {N_{i},N_{j}} \right)}} \\ {{{sim}_{B}\left( {D_{i},D_{j}} \right)} = \frac{\sum\limits_{i = 1}^{3}\quad {n\quad {B_{i} \cdot w_{i}}}}{3 \cdot {\min \left( {N_{i},N_{j}} \right)}}} \\ {{{sim}_{C}\left( {D_{i},D_{j}} \right)} = \frac{\sum\limits_{i = 1}^{3}\quad {n\quad {C_{i} \cdot w_{i}}}}{2 \cdot {\min \left( {N_{i},N_{j}} \right)}}} \end{matrix}$

[0063] where w₁, w₂ and w₃ are weightings corresponding to the POS1, POS2 and POS3 matchings respectively, such that w₁₊w₂₊w₃₌1.00 and w₁≧w₂≧w₃.

[0064] It will be recognised by persons skilled in the art that sim_(C)(D_(i),D_(j)) provides a measure of the overlap of terms, sim_(B)(D_(i),D_(j)) provides a measure of the overlap of lexically close pairs (relations and terms) and sim_(A)(D_(i),D_(j)) provides a measure of the overlap of 3-tuples.

[0065] It will also be recognised that these measures used in the Example are normalised (ie they take values in the range of (0,1) with identical portions of text having a value of 1 and portions having no matched 3-tuples having a value of 0. In addition, it should be noted that these measures are symmetric.

[0066] In the Example, a weighted sum of these measures is calculated as follows;

sim(D _(i) ,D _(j))=w _(a)×sim_(A)(D _(i) ,D _(j))+w _(b)×sim_(B)(D _(i) ,D _(j))+w _(c)×sim_(C)(D _(i) ,D _(j))

[0067] In the calculation of the weighted sum in the Example, the weights are chosen such that w_(a)+w_(b)+w_(c)=1.0 and w_(a)>w_(b)≧w_(c) (for eg, w_(a)=½, w_(b)=⅓, and w_(c)=⅙. Hence this gives rise to a class of measures for various choices of weights.

[0068] As the three measures sim_(A), sim_(B) and sim_(C) compute the overlap respectively with decreasing accuracy, the choice of decreasing weighting factors in the Example is warranted.

[0069] The weighted sum provides a measure of the similarity between two portions of text that can compute text similarity accurately and without any requirement for an external dictionary or thesaurus.

[0070] Finally, It will be appreciated that there may be other modifications and alterations made to the configurations described herein that are also within the scope of the present invention. 

1. A method for estimating the similarity between at least two portions of text including the steps of: forming a set of syntactic tuples, each tuple including at least two terms and a relation between the two terms; classifying the relation between the terms in the tuples according to a predefined set of relations; establishing the relative agreement between syntactic tuples from the portions of text under comparison according to predefined classes of agreement; calculating a value representative of the similarity between the portions of text for each of the classes of agreement; and establishing a value for the similarity between the portions of text by calculating a weighted sum of the values representative of the similarity between the portions of text for each of the classes of agreement.
 2. A method according to claim 1 wherein the step of calculating a value representative of the similarity between the portions of text for each of the classes of agreement includes a weighting based upon the number of matched terms occurring in particular parts of speech.
 3. A method according to claim 2 wherein the step of calculating a value representative of the similarity between the portions of text for each of the classes of agreement includes the application of a weighting factor to the estimate of similarity for each of the classes of agreement and the parts of speech in which matched terms occur.
 4. A method according to claim 1 wherein the syntactic tuples include two terms and a relation between the terms, the relation being classified according to one of the following classes: relations between a verb and its subject; relations between a verb and its object; relations between a modifier and its modified word; or a circumstantial relationship.
 5. A method according to claim 1 wherein the syntactic tuples are of the form (relation, term1, term2).
 6. A method according to claim 5 wherein a syntactic tuple of a first portion of text, T_(i), and a syntactic tuple of a second portion of text, T_(j), are associated with a class of agreement of syntactic tuples, class A, if and only if: (T _(i).relation==T _(j).relation) AND (T _(i).term1==T _(j).term1) AND (T _(i).term2==T _(j).term2).
 7. A method according to claim 6 wherein a syntactic tuple of a first portion of text, T_(i), and a syntactic tuple of a second portion of text, T_(j), are associated with a class of agreement of syntactic tuples, class B, if and only if: ((T _(i).relation==T _(j).relation) AND (T _(i).term1==T _(j).term1)) OR ((T _(i).relation==T _(j).relation) AND (T _(i).term2==T _(j).term2)) OR ((T _(i).term1==T _(j).term1) AND (T _(i).term2==T _(j).term2)).
 8. A method according to claim 7 wherein a syntactic tuple of a first portion of text, T_(i), and a syntactic tuple of a second portion of text, T_(j), are associated with a class of agreement of syntactic tuples, class C, if and only if: (T _(i).term1==T _(j).term1) OR (T _(i).term2==T _(j).term2).
 9. A method according to claim 8 wherein a syntactic tuple of a first portion of text, T_(i), and a syntactic tuple of a second portion of text, T_(j), are associated with a class of a part of speech, POS1, if the part of speech of each matching term in the syntactic tuples is a noun, namely, if: (T _(i).term1==T _(j).term1) AND (T _(i).term1.POS==NOUN AND T _(j).term1.POS==NOUN) AND (T _(i).term2==T _(j).term2) AND (T _(i).term2.POS==NOUN AND T _(j).term2.POS==NOUN).
 10. A method according to claim 9 wherein a syntactic tuple of a first portion of text, T_(i), and a syntactic tuple of a second portion of text, T_(j), are associated with a class of a part of speech, POS2, if the part of speech of one, and only one, matching term in the syntactic tuples is a noun, namely, if: ((T _(i).term1==T _(j).term1) AND (T _(i).term1.POS==NOUN AND T _(j).term1.POS==NOUN) AND (T _(i).term2==T _(j).term2) AND (T _(i).term2.POS !=NOUN OR T _(j).term2.POS !=NOUN)) OR ((T _(i).term1==T _(j).term1) AND (T _(i).term1.POS !=NOUN OR T _(j).term1.POS !=NOUN) AND (T _(i).term2==T _(j).term2) AND (T _(i).term2.POS==NOUN AND T _(j).term2.POS==NOUN))
 11. A method according to claim 10 wherein a syntactic tuple of a first portion of text, T_(i), and a syntactic tuple of a second portion of text, T_(j), are associated with a class of a part of speech, POS3, if they are not associated with either class POS1 or POS2.
 12. A method according to claim 11 wherein the step of calculating a value representative of the similarity between the portions of text for the classes of agreement includes a weighting based upon the number of matched terms occurring in particular parts of speech, the calculation of the value for Class A including parameters relating to the number of matching syntactic tuples according to Class A and POS1, nA₁, the number of matching syntactic tuples according to Class A and POS2, nA₂, and the number of matching syntactic tuples according to Class A and POS3, nA₃, and separate weighting factors w₁, w₂ and w₃ also being applied to the POS1, POS2 and POS3 matchings, the value, sim_(A)(D_(i),D_(j)), being calculated as: ${{sim}_{A}\left( {D_{i},D_{j}} \right)} = \frac{\sum\limits_{i = 1}^{3}\quad {n\quad {A_{i} \cdot w_{i}}}}{\min \left( {N_{i},N_{j}} \right)}$

where min(N_(i),N_(j)) represents the lesser value of the two lengths of the vectors of syntactic tuples formed for the portions of text D_(i) and D_(j) respectively.
 13. A method according to claim 12 wherein the step of calculating a value representative of the similarity between the portions of text for the classes of agreement includes a weighting based upon the number of matched terms occurring in particular parts of speech, the calculation of the value for Class B including parameters relating to the number of matching syntactic tuples according to Class B and POS1, nB₁, the number of matching syntactic tuples according to Class B and POS2, nB₂, and the number of matching syntactic tuples according to Class B and POS3, nB₃, and separate weighting factors w₁, w₂ and w₃ also being applied to the POS1, POS2 and POS3 matchings, the value, sim_(B)(D_(i),D_(j)), being calculated as: ${{sim}_{B}\left( {D_{i},D_{j}} \right)} = \frac{\sum\limits_{i = 1}^{3}\quad {n\quad {B_{i} \cdot w_{i}}}}{3 \cdot {\min \left( {N_{i},N_{j}} \right)}}$

where min(N_(i),N_(j)) represents the lesser value of the two lengths of the vectors of syntactic tuples formed for the portions of text D_(i) and D_(j) respectively.
 14. A method according to claim 13 wherein the step of calculating a value representative of the similarity between the portions of text for the classes of agreement includes a weighting based upon the number of matched terms occurring in particular parts of speech, the calculation of the value for Class C including parameters relating to the number of matching syntactic tuples according to Class C and POS1, nC₁, the number of matching syntactic tuples according to class C and POS2, nC₂, and the number of matching syntactic tuples according to Class C and POS3, nC₃, and separate weighting factors w₁, w₂ and w₃ also being applied to the POS1, POS2 and POS3 matchings, the value, sim_(C)(D_(i),D_(j)), being calculated as: ${{sim}_{C}\left( {D_{i},D_{j}} \right)} = \frac{\sum\limits_{i = 1}^{3}\quad {n\quad {C_{i} \cdot w_{i}}}}{2 \cdot {\min \left( {N_{i},N_{j}} \right)}}$

where min(N_(i),N_(j)) represents the lesser value of the two lengths of the vectors of syntactic tuples formed for the portions of text D_(i) and D_(j) respectively.
 15. A method according to claim 12 wherein the weighting factors, w1, w2 and w3 are such that: w ₁₊ w ₂₊ w ₃₌1.00 and w ₁ ≧w ₂ ≧w ₃.
 16. A method according to claim 13 wherein the weighting factors, w1, w2 and w3 are such that: w ₁₊ w ₂₊ w ₃₌1.00 and w ₁ ≧w ₂ ≧w ₃.
 17. A method according to claim 14 wherein the weighting factors, w1, w2 and w3 are such that: w ₁₊ w ₂₊ w ₃₌1.00 and w ₁ ≧w ₂ ≧w ₃.
 18. A method according to claim 17 wherein the step of establishing a value for the similarity between the portions of text by calculating a weighted sum of the values representative of the similarity between the portions of text for each of the classes of agreement, sim(Di,Dj), is calculated as: sim(D _(i) ,D _(j))=w _(a)×sim_(A)(D _(i) ,D _(j))+w _(b)×sim_(B)(D _(i) ,D _(j))+w _(c)×sim_(C)(D _(i) ,D _(j)) where w_(a), w_(b) and w_(c) are weighting factors.
 19. A method according to claim 18 wherein the weighting factors, w_(a), w_(b) and w_(c) are such that: w _(a) +w _(b) +w _(c)=1.0 and w _(a) ≧w _(b) ≧w _(c). 